package autorization;


/**
 * Объект - правило политики безопасности для системы ролей проекта
 * @author Volk ID = 1001
 * @version = 0.1 Базовый функционал объекта
 */
public class Rule {
    //----------------------Class constant------------------------------------
    /**
     * Константа, устанавливающая тип правила по умолчанию
     */
      public static final int GENERAL_TYPE = -1;
    //------------------------------------------------------------------------
    //----------------------Inner attributes----------------------------------
      private String name; //Имя правила
      private int type; //Тип правила
      private String tooltip; //Подсказка
    //------------------------------------------------------------------------
    //--------User's methood--------------------------------------------------
    /**
     * Конструктор, в качестве имени типа правила используется значение константы GENERAL_TYPE
     * @param name - имя правила
     */
    public Rule (String name) {
      this(name, GENERAL_TYPE);
    }


    /**
     * Конструктор
     * @param name - имя правила
     * @param type - тип правила
     */
    public Rule (String name, int type) {
      this(name, type, " ");
    }

    /**
     * Конструктор
     * @param name - имя правила
     * @param type - тип правила
     * @param tooltip - подсказка
     */
    public Rule (String name, int type, String tooltip) {
      this.name = name; 
      this.type = type; 
      this.tooltip = tooltip;
    }

    /**
     * Получить имя правила
     * @return имя правила
     */
    public String getName () {
        return name;
    }

    /**
     * Получить тип правила
     * @return тип правила
     */
    public int getType () {
        return type;
    }

    /**
     * Изменить тип правила
     * @param type - тип правила
     */
    public void setType (int type) {
      this.type = type;
    }


    /**
     * Получить подсказку
     * @return подсказка
     */
    public String getTooltip () {
      return tooltip;
    }

    /**
     * Установить новую подсказку о правиле
     * @param tooltip - подсказка
     * @return true - успех, false - в случае если входной параметр равен null - значению
     */
    public boolean setTooltip (String tooltip) {
     if(tooltip == null) return false;
     this.tooltip = tooltip; 
     return true;
    }
  //----------------------------------------------------------------------
}

